package com.mrjy.coursepackage.dto;

import com.mrjy.common.entity.CoursePackageInfo;
import com.mrjy.common.util.ExcelField;
import com.mrjy.common.util.PolyvTokenUtil;

import java.math.BigDecimal;
import java.sql.Timestamp;
import java.util.List;

public class CoursePackageInfoDTO extends CoursePackageInfo {

	/**
	 * 
	 */
	private static final long serialVersionUID = -8082711661189504437L;
	
	@ExcelField(title="序号")
	private Integer id;
	@ExcelField(title="标题")
	private String coursePackageName;
	@ExcelField(title="简介")
	private String coursePackageDesc;
	@ExcelField(title="标签")
	private String coursepackageTypes; //课程包标签
	@ExcelField(title="预设节")
	private Integer totalCourseNum; 
	@ExcelField(title="实际节")
	private Integer courseNum ; //已更新课程数
	@ExcelField(title="折扣价")
	private Float discountPrice;
	@ExcelField(title="原价")
	private Float originalPrice;
	@ExcelField(title="明师")
	private String userName; //导师名称
	@ExcelField(title="添加时间")
	private String createTimeString;//创建时间字符串
	@ExcelField(title="播放量")
	private Integer playTimes ; //视频播放数
	
	private String updateTimeString;
	
	private String userDesc ; //导师简介
	
	private String typeName ; //导师标签
	
	private Integer typeId ; //导师标签id
	
	private Integer learnerNum ; //正在学习人数
	
	private String headImgUrl;//导师微信头像
	
	private String picName; //导师头像 （兼容之前系统的头像）
	
	private String expireTime; // 有效期
	
	private String videoNames ; //视频名称
	
	private String videoName; 
	
	private Integer commentNum ; //视频评论数
	
	private Integer videoId; //视频id
	
	private List<Integer> typeIds;//标签ID数组
	
	private List<Integer> videoIds; //视频id
	
	private String startTimeStr;
	
	private String endTimeStr;
	
	private Boolean isVipStatus;//是否是会员或购买过该课程包
	
	private String videoIdsString;
	
	private Integer clickCount; //点击量

    private String videoTypeId; //视频标签id
	
	private double viewProgress;//学习进度
	
	private String commentName;//最近评价人
	private String commentContent; //最近的评价内容
	
	private Integer dynamicFlag;  //动态标志位,详细参照videoTypeDto实体

    private BigDecimal profit;  //利润

    private BigDecimal averageStart;  //平均分

    private Integer recommendNum;  //参与评价人数

    private Integer recordAuthority;  //语音权限
    
    private String stageName; //阶段名称
    
    private String lastViewDuration; //视频时间节点

    private Integer isFinish;

    private Timestamp lastViewTime;

    private String audioCode; //音频解码
    private PolyvTokenUtil polyvTokenUtil; //保利音频，token
    
    private Integer customTypeId; //话题id custom_module表的id

    private Integer freeFlag; //0收费，1免费

    private String mp3;

    private Integer isGlory; //是否已经获得勋章
    
    private String isSpecialString; //后台回显用的
    
    private Double sharingProportion;

    private Integer status; //课程包完成状态 (0 没看过 ，1：继续学习 2：重新开始)

    private Integer weclassIsFinish; //微课完成（0：没完成，1：完成）

    private String duration; //时间

    public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public String getUserDesc() {
		return userDesc;
	}

	public void setUserDesc(String userDesc) {
		this.userDesc = userDesc;
	}

	public String getTypeName() {
		return typeName;
	}

	public void setTypeName(String typeName) {
		this.typeName = typeName;
	}

	public Integer getTypeId() {
		return typeId;
	}

	public void setTypeId(Integer typeId) {
		this.typeId = typeId;
	}

	public Integer getCourseNum() {
		return courseNum;
	}

	public void setCourseNum(Integer courseNum) {
		this.courseNum = courseNum;
	}

	public Integer getLearnerNum() {
		return learnerNum;
	}

	public void setLearnerNum(Integer learnerNum) {
		this.learnerNum = learnerNum;
	}

	public String getHeadImgUrl() {
		return headImgUrl;
	}

	public void setHeadImgUrl(String headImgUrl) {
		this.headImgUrl = headImgUrl;
	}

	public String getPicName() {
		return picName;
	}

	public void setPicName(String picName) {
		this.picName = picName;
	}

	public String getExpireTime() {
		return expireTime;
	}

	public void setExpireTime(String expireTime) {
		this.expireTime = expireTime;
	}


	public Integer getPlayTimes() {
		return playTimes;
	}

	public void setPlayTimes(Integer playTimes) {
		this.playTimes = playTimes;
	}

	public Integer getCommentNum() {
		return commentNum;
	}

	public void setCommentNum(Integer commentNum) {
		this.commentNum = commentNum;
	}

	public String getCreateTimeString() {
		return createTimeString;
	}

	public void setCreateTimeString(String createTimeString) {
		this.createTimeString = createTimeString;
	}

	public Integer getVideoId() {
		return videoId;
	}

	public void setVideoId(Integer videoId) {
		this.videoId = videoId;
	}

	public List<Integer> getTypeIds() {
		return typeIds;
	}

	public void setTypeIds(List<Integer> typeIds) {
		this.typeIds = typeIds;
	}

	public List<Integer> getVideoIds() {
		return videoIds;
	}

	public void setVideoIds(List<Integer> videoIds) {
		this.videoIds = videoIds;
	}

	public String getEndTimeStr() {
		return endTimeStr;
	}

	public void setEndTimeStr(String endTimeStr) {
		this.endTimeStr = endTimeStr;
	}

	public Boolean getIsVipStatus() {
		return isVipStatus;
	}

    public void setIsVipStatus(Boolean isVipStatus) {
        this.isVipStatus = isVipStatus;
	}

	public String getCoursepackageTypes() {
		return coursepackageTypes;
	}

	public void setCoursepackageTypes(String coursepackageTypes) {
		this.coursepackageTypes = coursepackageTypes;
	}

	public String getVideoTypeId() {
		return videoTypeId;
	}

	public void setVideoTypeId(String videoTypeId) {
		this.videoTypeId = videoTypeId;
	}

	public String getCoursePackageName() {
		return coursePackageName;
	}

	public void setCoursePackageName(String coursePackageName) {
		this.coursePackageName = coursePackageName;
	}

	public String getCoursePackageDesc() {
		return coursePackageDesc;
	}

	public void setCoursePackageDesc(String coursePackageDesc) {
		this.coursePackageDesc = coursePackageDesc;
	}

	public Integer getTotalCourseNum() {
		return totalCourseNum;
	}

	public void setTotalCourseNum(Integer totalCourseNum) {
		this.totalCourseNum = totalCourseNum;
	}

	public Float getDiscountPrice() {
		return discountPrice;
	}

	public void setDiscountPrice(Float discountPrice) {
		this.discountPrice = discountPrice;
	}

	public Float getOriginalPrice() {
		return originalPrice;
	}

	public void setOriginalPrice(Float originalPrice) {
		this.originalPrice = originalPrice;
	}

	public String getVideoNames() {
		return videoNames;
	}

	public void setVideoNames(String videoNames) {
		this.videoNames = videoNames;
	}

	public String getStartTimeStr() {
		return startTimeStr;
	}

	public void setStartTimeStr(String startTimeStr) {
		this.startTimeStr = startTimeStr;
	}

	public String getVideoIdsString() {
		return videoIdsString;
	}

	public void setVideoIdsString(String videoIdsString) {
		this.videoIdsString = videoIdsString;
	}

	public String getVideoName() {
		return videoName;
	}

	public void setVideoName(String videoName) {
		this.videoName = videoName;
	}

	public double getViewProgress() {
		return viewProgress;
	}

	public void setViewProgress(double viewProgress) {
		this.viewProgress = viewProgress;
	}

	public Integer getDynamicFlag() {
		return dynamicFlag;
	}

	public void setDynamicFlag(Integer dynamicFlag) {
		this.dynamicFlag = dynamicFlag;
	}
	
	public String getCommentName() {
		return commentName;
	}

	public void setCommentName(String commentName) {
		this.commentName = commentName;
	}

	public String getCommentContent() {
		return commentContent;
	}

	public void setCommentContent(String commentContent) {
		this.commentContent = commentContent;
	}

    public BigDecimal getProfit() {
        return profit;
    }

    public void setProfit(BigDecimal profit) {
        if (profit != null) {
            this.profit = profit.setScale(1, BigDecimal.ROUND_HALF_UP);
        } else {
            this.profit = profit;
        }
    }

    public BigDecimal getAverageStart() {
        return averageStart;
    }

    public void setAverageStart(BigDecimal averageStart) {
        if (averageStart != null) {
            this.averageStart = averageStart.setScale(1, BigDecimal.ROUND_HALF_UP);
        } else {
            this.averageStart = averageStart;
        }
    }

    public Integer getRecommendNum() {
        return recommendNum;
    }

    public void setRecommendNum(Integer recommendNum) {
        this.recommendNum = recommendNum;
    }
    
    public Integer getRecordAuthority() {
        return recordAuthority;
    }

    public void setRecordAuthority(Integer recordAuthority) {
        this.recordAuthority = recordAuthority;
    }

	public String getStageName() {
		return stageName;
	}

	public void setStageName(String stageName) {
		this.stageName = stageName;
	}

	public String getLastViewDuration() {
		return lastViewDuration;
	}

	public void setLastViewDuration(String lastViewDuration) {
		this.lastViewDuration = lastViewDuration;
	}


    public Timestamp getLastViewTime() {
        return lastViewTime;
    }

    public void setLastViewTime(Timestamp lastViewTime) {
        this.lastViewTime = lastViewTime;
    }

    public Integer getIsFinish() {
        return isFinish;
    }

    public void setIsFinish(Integer isFinish) {
        this.isFinish = isFinish;
    }

	public Integer getClickCount() {
		return clickCount;
	}

	public void setClickCount(Integer clickCount) {
		this.clickCount = clickCount;
	}

	public Integer getCustomTypeId() {
		return customTypeId;
	}

	public void setCustomTypeId(Integer customTypeId) {
		this.customTypeId = customTypeId;
	}


    public String getAudioCode() {
        return audioCode;
    }

    public void setAudioCode(String audioCode) {
        this.audioCode = audioCode;
    }

    public PolyvTokenUtil getPolyvTokenUtil() {
        return polyvTokenUtil;
    }

    public void setPolyvTokenUtil(PolyvTokenUtil polyvTokenUtil) {
        this.polyvTokenUtil = polyvTokenUtil;
    }

    public Integer getFreeFlag() {
        return freeFlag;
    }

    public void setFreeFlag(Integer freeFlag) {
        this.freeFlag = freeFlag;
    }

    public String getMp3() {
        return mp3;
    }

    public void setMp3(String mp3) {
        this.mp3 = mp3;
    }

    public Integer getIsGlory() {
        return isGlory;
    }

    public void setIsGlory(Integer isGlory) {
        this.isGlory = isGlory;
    }

	public String getIsSpecialString() {
		return isSpecialString;
	}

	public void setIsSpecialString(String isSpecialString) {
		this.isSpecialString = isSpecialString;
	}

	public Double getSharingProportion() {
		return sharingProportion;
	}

	public void setSharingProportion(Double sharingProportion) {
		this.sharingProportion = sharingProportion;
	}

	public String getUpdateTimeString() {
		return updateTimeString;
	}

	public void setUpdateTimeString(String updateTimeString) {
		this.updateTimeString = updateTimeString;
	}

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Integer getWeclassIsFinish() {
        return weclassIsFinish;
    }

    public void setWeclassIsFinish(Integer weclassIsFinish) {
        this.weclassIsFinish = weclassIsFinish;
    }

    public String getDuration() {
        return duration;
    }

    public void setDuration(String duration) {
        this.duration = duration;
    }

}
